﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
#if NETFX_CORE
using Windows.ApplicationModel.Resources;

#endif

namespace StyleMVVM.Validation.Impl.Fluent
{
	public interface IFluentOperator<T>
	{
#if NETFX_CORE
		string GenerateLogicStatement(ResourceLoader fluentResources);

		string GenerateErrorMessage(ResourceLoader fluentResources);
#else

		string GenerateLogicStatement();

		string GenerateErrorMessage();
#endif

		Expression GenerateExpression(IFluentExpressionProvider propertyExpressionProvider);

		bool IsRequired { get; }
	}
}